package com.ruoyi.candidate.service;

import com.ruoyi.candidate.domain.Candidate;
import com.ruoyi.common.core.domain.entity.SysUser;

public interface ICandidateService {

    /**
     * 注册新的考生
     * @param candidate 考生信息
     */
    int register(Candidate candidate);

    /**
     * 根据身份证号和密码登录
     * @param idNumber 身份证号
     * @param password 密码
     * @return 考生信息
     */
    Candidate login(String idNumber, String password);

    /**
     * 修改考生密码
     * @param idNumber 身份证号
     * @param phone 电话号码
     * @param newPassword 新密码
     */
    int modifyPassword(String idNumber, String phone, String newPassword);

    /**
     * 更新考生的报名相关信息
     * 有信息则更新，无则添加
     * @param candidate 考生信息
     */
    int updateRegistrationInfo(Candidate candidate);


    /**
     * 更新考生的基本信息
     * @param candidate 考生信息
     */
    int updateBasicInfo(Candidate candidate);

    /**
     * 更新或添加考生的收取通知书信息
     * @param candidate 考生信息
     */
    int updateNotificationInfo(Candidate candidate);

    /**
     * 根据考生编号删除考生信息
     * @param id 考生编号
     */
    int deleteCandidateById(Long id);

    /**
     * 根据身份证号查询考生信息
     * @param idNumber 身份证号
     * @return 考生信息
     */
    Candidate getCandidateByIdNumber(String idNumber);

    /**
     * 根据考生编号查询考生信息
     * @param id 考生编号
     * @return 考生信息
     */
    Candidate getCandidateById(Long id);

    /**
     * 根据考生编号查询考生基础信息
     * @param id 考生编号
     * @return 考生信息
     */
    Candidate getBaseInfoById(Long id);
}
